package com.fishingwithme.domain.circle;

import java.util.List;

import com.fishingwithme.infrastructure.dtos.circle.SpotInCircleDto;

/**
 * 圈子地理空间服务接口
 * 提供基于地理坐标的圈子内钓点查询功能
 */
public interface CircleGeoService {

    /**
     * 根据circleId查询圈子范围内的spot数据
     * 实现完整的地理空间筛选逻辑：
     * 1. 查询circle的中心点和多边形边界
     * 2. 计算中心点到多边形顶点的最大距离
     * 3. 查询该距离范围内的spot数据（粗筛）
     * 4. 判断spot是否在多边形内部（精筛）
     *
     * @param circleId 圈子ID
     * @return 符合条件的spot列表
     */
    List<SpotInCircleDto> getSpotsInCircle(Long circleId);
}